﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TestMatrix.Model;

namespace TestMatrix.DataModel.Factory
{
    public interface IDataSourceItem
    {
        object GetDataSource();
        List<tblETLHistory> QueryTblETLHistory(string sql);

        List<tblBugList> QueryTblBugList(string sql);

        List<tblBugList> QueryTblBugList(string sql, params string[] args);

        void InsertBugs(tblBugList bugs);

        void InsertAllBugs(List<tblBugList> bugs);

        void DeleteAllBugs();

        List<tblNumOfCreatedTC> QueryTblNumOfCreatedTC(string sql);

        List<tblNumOfCreatedTC> QueryTblNumOfCreatedTC(string sql, params string[] args);

        void InsertTblNumOfCreatedTC(tblNumOfCreatedTC tc);

        void DeleteAllTblNumOfCreatedTC();

        List<tblTestAutomation> QueryTblTestAutomation(string sql);

        List<tblTestAutomation> QueryTblTestAutomation(string sql, params string[] args);

        void InsertTblTestAutomation(tblTestAutomation tc);

        void DeleteAllTblTestAutomation();

        List<tblNumOfExecutedTC> QuerytblNumOfExecutedTC(string sql);

        List<tblNumOfExecutedTC> QuerytblNumOfExecutedTC(string sql, params string[] args);

        void InserttblNumOfExecutedTC(tblNumOfExecutedTC tc);

        void DeleteAlltblNumOfExecutedTC();

        List<tblReleaseInfo> QuerytblReleaseInfo(string sql);

        List<tblReleaseInfo> QuerytblReleaseInfo(string sql, params string[] args);

        void InserttblReleaseInfo(tblReleaseInfo tc);

        void InsertAlltblReleaseInfo(List<tblReleaseInfo> tc);

        void UpdatetblReleaseInfo(tblReleaseInfo tc);

        void DeleteAlltblReleaseInfo();

        List<tblReleaseDetailInfo> QuerytblReleaseDetailInfo(string sql);

        List<tblReleaseDetailInfo> QuerytblReleaseDetailInfo(string sql, params string[] args);

        void InserttblReleaseDetailInfo(tblReleaseDetailInfo tc);

        void InsertAlltblReleaseDetailInfo(List<tblReleaseDetailInfo> tc);

        void UpdatetblReleaseDetailInfo(tblReleaseDetailInfo tc);

        void DeleteAlltblReleaseDetailInfo();

        List<tblTestCaseInCI> QuerytblTestCaseInCI(string sql);

        List<tblTestCaseInCI> QuerytblTestCaseInCI(string sql, params string[] args);

        void InserttblTestCaseInCI(tblTestCaseInCI tc);

        void DeleteAlltblTestCaseInCI();

        List<tblGlobalTestCasePassRate> QuerytblGolbalTestCasePassRate(string sql);

        List<tblGlobalTestCasePassRate> QuerytblGolbalTestCasePassRate(string sql, params string[] args);

        void InserttblGolbalTestCasePassRate(tblGlobalTestCasePassRate tc);

        void DeleteAlltblGolbalTestCasePassRate();

        List<tblGlobalTestCaseAutomation> QuerytblGlobalTestCaseAutomation(string sql);

        List<tblGlobalTestCaseAutomation> QuerytblGlobalTestCaseAutomation(string sql, params string[] args);

        void InserttblGlobalTestCaseAutomation(tblGlobalTestCaseAutomation tc);

        void DeleteAlltblGlobalTestCaseAutomation();

        List<tblGlobalDRE> QuerytblGlobalDRE(string sql);

        List<tblGlobalDRE> QuerytblGlobalDRE(string sql, params string[] args);

        void InserttblGlobalDRE(tblGlobalDRE tc);

        void DeleteAlltblGlobalDRE();
    }
}
